package student.collection.set;

import java.util.HashSet;

/**
 * 不能保证元素的排列顺序，顺序有可能发生变化。
 * 集合元素可以是null,但只能放入一个null。
 * HashSet底层是采用HashMap实现的，只用了key
 * HashSet底层是哈希表实现的
 *
 * 插入：先比较hashCode，hashCode值来决定该对象在HashSet中存储位置。如果hashcode相等则比较equals。
 *
 * 如果要把一个对象放入HashSet中，重写该对象对应类的equals方法，也应该重写其hashCode()方法。
 * 其规则是如果两个对象通过equals方法比较返回true时，其hashCode也应该相同。
 * 另外，对象中用作equals比较标准的属性，都应该用来计算 hashCode的值。
 */
public class HashSetTest {
    public static void main(String[] args) {
        HashSet<String> hashSet = new HashSet<>();

        hashSet.add("Bs");
        hashSet.add("Dersiger");
        hashSet.add("Ameraic");
        hashSet.add("Zskk");
        hashSet.add("Sunruxue");
        hashSet.add("Fuck");

        hashSet.forEach(System.out::println);
    }
}
